Making Components Contract Aware
نویسندگان
چکیده
38 Computer Making Components Contract Aware C omponents have long promised to neatly encapsulate data and programs into a box that operates predictably without requiring that users know the specifics of how it does so. Many advocates have predicted that components will bring about the bright future of large-scale software reuse, spawning a market for components usable with such mainstream software buses as the Common Object Request Broker Architecture (CORBA) and Distributed Component Object Model (DCOM). In the Windows world, at least, this prediction is becoming a reality. Yet recent reports 1,2 indicate mixed results when using and reusing components in mission-critical settings. Such results raise disturbing questions. How can you trust a component? What if the component behaves unexpectedly, either because it is faulty or simply because you misused it? Mission-critical systems cannot be rebooted as easily as a desktop computer. We thus need a way of determining beforehand whether we can use a given component within a certain context. Ideally, this information would take the form of a specification that tells us what the component does without entering into the details of how. Further, the specification should provide parameters against which the component can be verified and validated, thus providing a kind of contract between the component and its users. In real life, contracts exist at different levels, from Jean-Jacques Rousseau's social contract to negotiable contracts, from various forms of license agreements to cash-and-carry. Likewise, we have identified four classes of contracts in the software component world: basic or syntactic, behavioral, synchronization, and quantitative. Responsibility for contract management must be shared by both client and service provider. In those cases where the contracts are self-explanatory, assigning responsibility is easy. But some contracts rely on external constraints that too often remain implicit. In particular, quantitative contracts such as quality of service refer to features " outside the box, " which reside in the system layer on which client and provider run. In this article we define a general model of software contracts and show how existing mechanisms could be used to turn traditional components into contract-aware ones. When we apply contracts to components, we find that such contracts can be divided into four levels of increasingly negotiable properties, as Figure 1 shows. The first level, basic, or syntactic, contracts, is required simply to make the system work. The second level, behavioral contracts , improves the level of confidence in …
منابع مشابه
Contract Aware Components, 10 years after
The notion of contract aware components has been published roughly ten years ago and is now becoming mainstream in several fields where the usage of software components is seen as critical. The goal of this paper is to survey domains such as Embedded Systems or Service Oriented Architecture where the notion of contract aware components has been influential. For each of these domains we briefly ...
متن کاملAn Assessment of Beneficiaries’ Satisfaction of the Management of Loan Contract Components by Farmer Cooperative Societies in Edo State, Nigeria
The study assessed beneficiaries’ satisfaction in the management of loag-contract components by cooperatives involved in the farm credit delivery in Edo State. The objective was to identify the components of the farm loan contract, examine the management strategies and rate the beneficiaries’ satisfaction of such management strategies. This was done by purposively selecting 40 cooperatives invo...
متن کاملEco 2011/31 Department of Economics Asymmetric Awareness and Moral Hazard
This paper introduces asymmetric awareness into the classical principal-agent model and discusses the optimal contract between a fully aware principal and an unaware agent. The principal enlarges the agent’s awareness strategically when proposing the contract. He faces a trade off between participation and incentives. Leaving the agent unaware allows him to exploit the agent’s incomplete unders...
متن کاملQoSTalk : A Visual Quality of Service Programming and Development Environment
The provision of multimedia services is becoming ubiquitous. Services such as audio/video streaming, digital libraries and on-line businesses are widely deployed. Different middleware frameworks have been developed to enable such a dynamic and customized delivery of multimedia services. Two major types of QoS-aware systems have evolved:(1) Reservation-based Systems such as Qualman [3] and (2) A...
متن کاملCoCoSpec: A Mode-Aware Contract Language for Reactive Systems
Contract-based software development has long been a leading methodology for the construction of component-based reactive systems, embedded systems in particular. Contracts are an effective way to establish boundaries between components and can be used efficiently to verify global properties by using compositional reasoning techniques. A contract specifies the assumptions a component makes on it...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- IEEE Computer
دوره 32 شماره
صفحات -
تاریخ انتشار 1999